package com.steel.yfmall.cloud.assistant.goods;


import com.steel.yfmall.cloud.assistant.dto.para.goods.ParaProductSellerGoodsBean;
import com.steel.yfmall.cloud.assistant.dto.para.goods.ParaProductSellerGoodsOtherBean;
import com.steel.yfmall.cloud.assistant.dto.result.goods.ResultProductSellerGoodsBean;
import com.steel.yfmall.cloud.assistant.po.goods.ProductSellerGoods;
import com.steel.yfmall.cloud.components.utils.base.Pages;

import java.util.List;
import java.util.Map;

public interface ProductSellerGoodsService {

    /**
     * 统计符合条件的商品
     *
     * @return long    返回类型
     * @Title: countSellerGoodsListBySite
     * @Description: (这里用一句话描述这个方法的作用)
     * @Param paraBean 参数说明
     * @author yuchaohua
     * @date 2020/12/8 20:38
     */
    long countSellerGoodsListBySite(ParaProductSellerGoodsBean paraBean);


    /**
     * 获取商品基础信息
     * 必传参数(站点，商品编码)
     *
     * @return com.steel.yfmall.cloud.product.po.SteelProductSellerGoodsBean    返回类型
     * @Title: getSellerGoodsBySite
     * @Description: (这里用一句话描述这个方法的作用)
     * @Param paraBean 参数说明
     * @author yuchaohua
     * @date 2020/11/21 17:11
     */
    ResultProductSellerGoodsBean getSellerGoodsBySite(ParaProductSellerGoodsBean paraBean);


    /**
     *  根据 16个字段查询商品编码
     * @param paraBean
     * @author liuzhijun
     * @date 2021/4/7 15:20
     * @return com.steel.yfmall.cloud.assistant.dto.result.goods.ResultProductSellerGoodsBean
     */
     ResultProductSellerGoodsBean getSellerGoodsProductSysCodeBySite(ParaProductSellerGoodsBean paraBean);
        /**
         * 批量查询商品基础信息集合
         * 必传参数 站点编码 +  商品编码或商品编码集合
         *
         * @return java.util.List<com.steel.yfmall.cloud.product.po.SteelProductSellerGoodsBean>    返回类型
         * @Title: getSellerGoodsListBySite
         * @Description: (这里用一句话描述这个方法的作用)
         * @Param paraBean 参数说明
         * @author yuchaohua
         * @date 2020/11/21 17:21
         */
    List<ResultProductSellerGoodsBean> getSellerGoodsListBySite(ParaProductSellerGoodsBean paraBean);

    /**
     * 获取店铺商品集合(key : siteCode + goodsSn)
     * 必传参数 站点编码 +  商品编码或商品编码集合
     *
     * @return java.util.Map<java.lang.String, com.steel.yfmall.cloud.product.po.SteelProductSellerGoodsBean>    返回类型
     * @Title: getProductSellerGoodsBeanMap
     * @Description: (这里用一句话描述这个方法的作用)
     * @Param paraBean 参数说明
     * @author yuchaohua
     * @date 2020/11/21 17:21
     */
    Map<String, ResultProductSellerGoodsBean> getProductSellerGoodsBeanMap(ParaProductSellerGoodsBean paraBean);

    /**
     * 修改商品价格信息
     *
     * @return boolean    返回类型
     * @Title: updateProductSellerGoods
     * @Description: (这里用一句话描述这个方法的作用)
     * @Param paraBean 参数说明
     * @Param recordBean 参数说明
     * @author yuchaohua
     * @date 2020/12/9 0:56
     */
    boolean updateProductSellerGoods(ParaProductSellerGoodsBean paraBean, ProductSellerGoods recordBean);


    /**
     * 计算总条数 定时任务专用
     *
     * @author jia chang bao
     */
    long count(ParaProductSellerGoodsOtherBean paraProductSellerGoodsOtherBean);

    /**
     * 分页查询 定时任务专用
     *
     * @author jia chang bao
     */
    Pages<ProductSellerGoods> getProductSellerGoods(ParaProductSellerGoodsOtherBean paraBean, long count);
}
